package Road;

import sun.nio.cs.ext.MacHebrew;

import java.util.Scanner;

/**
 * create by Sun
 * 2018/8/22
 * 最小生成树
 */
public class Prim {
    static int[][] map=new int[1000][1000];
    static int[] vis=new int[1000];
    static int[] dis=new int[1000];
    static final int max=Integer.MAX_VALUE;
    static int n;
    static int sum=0;
    static int flag=0;
    private static void prim() {
        vis[1]=1;
        for(int i=1;i<=n;i++){
            //初始的根
            dis[i]=map[1][i];
        }
        int pos=1;
        //在需要n-1 个点
        for(int k=1;k<n;k++){
            int min=max;
            for(int i=1;i<=n;i++ ){
                if(vis[i]==0&&min>dis[i]){
                    min=dis[i];
                    pos=i;
                }
            }

            if(min==max){
                System.out.println("-1");
                flag=1;
                break;
            }
            //下一个分根
            vis[pos]=1;
            System.out.println(min +"--"+pos+"---"+vis[pos]);
            sum=sum+min;
            for(int i=1;i<=n;i++){
                if(vis[i]==0&&dis[i]>map[pos][i]){
                    dis[i]=map[pos][i];
                }
            }
        }


    }


    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        n=sc.nextInt();
        int m=sc.nextInt();
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                map[i][j]=max;
            }
        }
        for(int i=0;i<m;i++){
            int a=sc.nextInt();
            int b=sc.nextInt();
            int c=sc.nextByte();
            map[a][b]=map[b][a]=c;
        }

        prim();
        if(flag==0){
            System.out.println(sum);
        }
    }



}
